/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package GestorPruebas;

/**
 * @file Imagen.java
 * @brief Implementa la clase Imagen
 *
 * Implementa la clase Image usada para manejar la información de la imagenes
 * de las pruebas.
 *
 * @author Jose Angel Carvajal Soto
 * @version 01.00
 *
 */


import GestorUsuarios.IDException;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.sql.SQLException;
import java.util.ArrayList;

public class Imagen {

    /**
     * @brief Ubicacion temporal de la imagen
     */
    private String _ubicacion;

    /**
     * @brief nombre de la imagen en en la BD
     */
    private String _nombre;

    /**
     * @brief id de la imagen
     */
    private Integer _id;

    /**
     * @brief referencia a la prueba que se asocia la imagen
     */
    private Prueba _prueba;

     /**
     * @brief constructor por defecto de la clase Imagen
     */
     public Imagen(){
        _ubicacion = null;
        _nombre = null;
        _prueba = null;
        _id = null;
    }

     /**
      * @author José Ángel Carvajal Soto
     * @brief constructor de la clase Imagen
      * @param ubicacion ubicacion donde se aloja la imagen localmente
      * @param nombre de la imagen en la BD
      * @param prueba prueba a con la que esta relacionada la imagen
     */
    public Imagen(String ubicacion, String nombre, Prueba prueba)throws NoSuchAlgorithmException{
        _ubicacion = ubicacion;
        _nombre = nombre;
        _prueba = prueba;
    }

     /**
      * @author José Ángel Carvajal Soto
     * @brief devuelve el nombre en la BD
      * @return nombre de la imagen como String
     */
    public String getNombre(){
        return _nombre;
    }
     /**
      * @author José Ángel Carvajal Soto
     * @brief establece el nombre en la BD
     */
    public void setNombre(String nombre){
        _nombre = nombre;
    }
     /**
      * @author José Ángel Carvajal Soto
     * @brief devuelve el id del la imagen
      * @return id de la imagen como Integer
     */
    public Integer getId(){
        return _id;
    }
     /**
      * @author José Ángel Carvajal Soto
     * @brief establece el id del la imagen
     */
    public void setId(Integer id){
        _id = id;
    }
     /**
      * @author José Ángel Carvajal Soto
     * @brief devuelve la ubicacion temporal local del la imagen
      * @return ubicacion de la imagen como String
     */
     public String getUbicacion(){
        return _ubicacion;
    }
     /**
      * @author José Ángel Carvajal Soto
     * @brief establece la ubicacion temporal local del la imagen
     */
    public void setUbicacion(String ubicacion){
        _ubicacion = ubicacion;
    }

     /**
      * @author José Ángel Carvajal Soto
     * @brief devuelve la prueba a la que la prueba hace referencia
      * @return prueba a la que hace referencia la imagen
     */
    public Prueba getPrueba(){
        return _prueba;
    }
     /**
      * @author José Ángel Carvajal Soto
     * @brief establece la prueba a la que la prueba hace referencia
     */
    public void setPrueba(Prueba prueba){
        _prueba = prueba;
    }
    /**
     * @author José Ángel Carvajal Soto
     * @brief llama a la fucion que agregara una imagen a la BD
     * @param img que se va a gregara a la BD
     */
    public static void add(Imagen img) throws SQLException, IOException,ClassNotFoundException, IDException, NoSuchAlgorithmException{
          ImagenDAO.add(img);
    }

    /**
     * @author José Ángel Carvajal Soto
     * @brief llama a la funcion que Obtinene una imagen en la BD y la guarada en una ubicacion temporañ
     * @param id de la imagen a obtener
     * @param ubicacion ubicacion temporal donde se alojara la imagen
     *
     * @return imagenes obtenidas en la BD
     */
    public static ArrayList<Imagen> get(Integer idPrueba, String ubicacion ) throws SQLException, IOException, ClassNotFoundException, IDException, NoSuchAlgorithmException{
	return ImagenDAO.get(idPrueba, ubicacion);
    }

    
}
